The Fibonacci sequence is defined by the recurrence relation:

Fn = Fn−1 + Fn−2, where F1 = 1 and F2 = 1.

Hence the first 12 terms will be:

F1 = 1 F2 = 1 F3 = 2 F4 = 3 F5 = 5 F6 = 8 F7 = 13 F8 = 21 F9 = 34 F10 = 55 F11 = 89 F12 = 144

The 12th term, F12, is the first term to contain three digits.

What is the first term in the Fibonacci sequence to contain 1000 digits?


In [1]:
def fibonacci(n)
  if n < 2
    return n;
  else
    p2 = 0;
    p1 = 1;
    
    2.upto(n){ p2 , p1 = p1 , p2 + p1 }
    
    return p1;
  end
end

In [18]:
fibonacci(4782).to_s.length


Out[18]:
1000

In [ ]: